Asynchronous communication is the transmission of data, generally without the use of an external clock signal. Data transmission occurs intermittently rather than in a steady stream. To affect communications from sender to receiver, the communications themselves must somehow be made time independent, a predefined understanding of communication timing must exist between the sender and receiver, or there must be some form of signaling protocol between sender and receiver.
The most common signaling protocol is known as “Request-Acknowledge,” “Handshake,” or “Asynchronous Handshake.” A data sender signals a request when it has new data. A data receiver signals an Acknowledge in response to the request. Signaling protocols can be either transition-signaling or level-signaling.
Transition-signaling implies that EITHER a transition from a logical-0 to a logical-1 OR a transition from a Logical-1 to a Logical-0 on the request line implies a request. Similarly, a transition in either direction on the acknowledge line implies an Acknowledge. Transition-signaling is often called a two-phase protocol. Transition-signaling is generally understood to be faster than level-signaling.
In level-signaling, a specific logical value on the request line implies a request. In the absence of that specific logical value, there is no request. Similarly, a specific logical value on the acknowledge line implies an Acknowledge. In the absence of that specific logical value, there is no acknowledge. Level-signaling is often called a four-phase protocol because of the four phases in the handshake—request assertion (by the sender), acknowledge assertion (by the receiver), request withdrawal (by the sender), and, finally, acknowledge withdrawal (by the sender). Regardless of the nature of the signaling protocol, when the request and acknowledge are transmitted with the data, this is referred to as a bundled data protocol.
Some prior art methods and systems provide a high-speed asynchronous pipeline. Such methods and systems may use a transition-signaling bundled data protocol where the bundled data and request inputs travel together through transparent latches until the system recognizes that the request is present within its latches. Then the latches are simultaneously closed (made opaque) and the system signals acknowledge. This allows incoming data and requests to follow virtually identical delay paths. Data and request travel through identical latches all of which are transparent at the same time, then the request must pass through some additional logic, which recognizes the presence of the request. The phase delay through this additional logic has the effect of reducing the significance of any timing dispersions within the bundled data.
However, such prior art approaches are limited because they are not amenable to time division multiplexing applications. That is to say, they offer no inherent ability to arbitrate between two streams and, even if arbitration were present, its use of transition-signaling makes time division multiplexing difficult.
As such, prior art methods and systems do not provide a theoretically ideal transition-signaling system where a request transition from a logical-1 to a logical-0 is equal to a request transition from a logical-0 to a logical-1. Prior art approaches include a pipeline stage that will only accept a request transition from a logical-1 to a logical-0 if, in the most recent past, it has just accepted a request transition from a logical-0 to a logical-1.
For some applications, this limitation is inconsequential because the previous pipeline stage will, naturally, make a request transition from a logical-1 to a logical-0 and then a second request transition from the logical-0 back to the logical-1. However, in applications with two or more streams, preceding pipeline stages cannot know which transition (1-to-0 or 0-to-1) a time division multiplexing stage is expecting, in order to request a new transfer of data. Therefore, there is an unmet need for a high-speed asynchronous protocol that expands data arbitration capabilities.